home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / devel / vbcc-wos-src / vlink / history < prev    next >
Text File  |  1999-01-01  |  11KB  |  221 lines

  1. vlink history
  2. =============
  3.  
  4. (ados/ehf): changes are relevant for AmigaDOS/EHF only
  5. (elf):      general ELF changes
  6. (elf32ppc): changes are relevant for ELF32-PowerPC only
  7.  
  8. - 0.6d (13.02.99)
  9. o (elf) The PowerUp ELF loader has its own constructor/destructor
  10.   functionality for .ctors and .dtors sections, so we have to
  11.   rename them to .ctor_/.dtor_ (elf32powerup executable only). The
  12.   contents can still be referenced by .ctors/.dtors, though.
  13.  
  14.  
  15. - 0.6c (05.02.99)
  16. o (elf) Elf32 supports vbcc's _INIT/_EXIT function, where constructor/
  17.   destructor function pointers will be placed into the .ctors and .dtors
  18.   sections. .ctors/.dtors are using the standard format, but compiler-
  19.   generated entries will not work - the linker has to create these sections.
  20.   If .ctors or .dtors is referenced, but no such section exists, the
  21.   linker will create an artificial absolute symbol with the value 0
  22.   instead.
  23. o All targets use the standard format for constructor/destructor
  24.   sections, which means: first longword describes the number of pointers
  25.   or is -1 (vlink uses the latter one), when the init code has to deter-
  26.   mine the number itself. The last longword will always be a NULL pointer.
  27.  
  28. - 0.6b (16.01.99)
  29. o Changed copyright.
  30. o Compiles now under Irix 5.3.
  31.  
  32. - 0.6a (19.12.98)
  33. o vlink should be prepared to support little-endian objects now. The
  34.   endianess of the whole linking procedure is determined when loading
  35.   the first object file. Consequently the following ones must use the same.
  36. o Fixed some problems with constructor/destructor-type linker symbols in
  37.   small data mode. Although they were addressed base-relative, their
  38.   sections could not be coalesced with the small data section and their
  39.   offsets were never updated.
  40.  
  41. - 0.6  (24.10.98)
  42. o The section offset for base-relative relocations was made target-
  43.   dependant. Consequently, -baseoff modifies the default setting for
  44.   the current output file format.
  45.   The following default offsets were defined:
  46.   amigaos/amigaehf: 0x7ffe, elf32ppcbe/elf32powerup: 0x7ff0.
  47. o New target elf32powerup, which supports the PPC coprocessor boards
  48.   from Phase5. The format of elf32powerup executables is the same as
  49.   the format of elf32ppcbe relocatable objects, but no unknown symbols
  50.   are allowed and base relative relocations will be resolved.
  51. o (elf): Linking with shared objects is supported, but they still cannot
  52.   be created by vlink.
  53. o (elf): .sdata/.sbss and .sdata2/.sbss2 (EABI) will always be combined,
  54.   also in -multibase mode.
  55. o (elf32ppc): _LinkerDB is no longer known to elf32ppcbe. It's an
  56.   elf32powerup-only symbol now.
  57. o (elf32ppc): Linker symbols _SDA_BASE_ and _SDA2_BASE (EABI).
  58.  
  59. - 0.5f (08.10.98)
  60. o (ados/ehf): The automatic constructor/destructor functions have to
  61.   begin with __INIT or __EXIT to avoid conflicts with ANSI-C identifiers.
  62.  
  63. - 0.5e (05.10.98)
  64. o A target may create prioritized pointers or constants in a new
  65.   section. This feature is useful for buidling constructor/destructor
  66.   function pointer tables. Currently used by ados/ehf only.
  67. o (ados/ehf): Global symbols beginning with _INIT or _EXIT will create an
  68.   entry into the constructor/destructor function pointer table.
  69.   These tables can be addressed by using the symbols __ctors and __dtors
  70.   (e.g. in the startup/cleanup code of a program).
  71.   The priority of these functions may be defined by specifying a number
  72.   behind the INIT/EXIT string. Example: _INIT_9_OpenLibs.
  73.   Otherwise their priority defaults to 0 and they will be positioned
  74.   in order of occurence.
  75.  
  76. - 0.5d (22.08.98)
  77. o Faster memory allocation algorithm, using 256k chunks. Can be
  78.   activated by defining FASTALLOC.
  79. o Directories are only scanned for shared objects, because of a possible
  80.   version extension. This is a great improvement under AmigaOS, because
  81.   the file system is not fast enough.
  82. o When using the -dn option together with the previous two enhancements,
  83.   vlink is nearly 10(!) times faster than before, under AmigaOS.
  84.  
  85. - 0.5c (08.07.98)
  86. o (ados/ehf): If the target is EHF and an undefined reference to a
  87.   symbol beginning with "@_" was detected, it will be automagically
  88.   generated by the linker, as long as a symbol without "@_" already
  89.   exists. The linker will create an artificial object unit with the
  90.   name of the referenced symbol (without "@_"), including a data section
  91.   called ".tocd", which reserves four bytes for the symbol pointer.
  92.   This nice feature allows the generation of @__name pointer symbols
  93.   in the TOC section on demand, which saves a lot of space.
  94.  
  95. - 0.5b (05.07.98)
  96. o (elf32ppc): Implemented linker symbol _LinkerDB.
  97.  
  98. - 0.5a (28.06.98)
  99. o Error 19 (symbol xxx (yyy) is already defined in...) was turned
  100.   into a warning.
  101. o Option -w (suppress warnings) was missing in help text.
  102.  
  103. - 0.5  (27.06.98)
  104. o Target specific linker symbol support. This feature is currently
  105.   only used by the AmigaDOS file format.
  106. o (ados/ehf): Implemented linker symbols:
  107.   _DATA_BAS_, _DATA_LEN_, _BSS_LEN_, _LinkerDB, __BSSBAS, __BSSLEN,
  108.   __ctors, __dtors, __DATA_BAS, __DATA_LEN, __BSS_LEN, __RESIDENT.
  109. o -v shows the default target.
  110.  
  111. - 0.4  (05.06.98)
  112. o New linking rules. A lot more factors are now involved in the decision
  113.   whether two sections have to be coalesced or not:
  114.   - target-specific linking rules are checked first
  115.   - small-code option forces merging of all code sections
  116.   - small-data option forces merging of all data and bss sections
  117.   - relative references between two sections
  118.   - all sections which have base-relative references from other sections
  119.     must be merged (if not denied by -multibase)
  120.   - default linking rules: sections must have the same name and type
  121. o (ados/ehf): target specific linking rules:
  122.   - unnamed sections are never merged, unless the small-code or small-data
  123.     option is given
  124.   - sections named _NOMERGE are absolutely never merged
  125.   - data and bss sections named __MERGED will be merged, warn about
  126.     code sections with this name (but merge them anyway)
  127. o All targets which support it can now take advantage of code-bss and
  128.   data-bss sections. In this case only the initalized section contents
  129.   is stored in the file, although the section header contains the total
  130.   size. The operating system is responsible for clearing the unini-
  131.   tialized part after loading.
  132. o Option -sc forces merging of all code sections in an executable.
  133. o Option -sd forces merging of all data and bss sections in an executable.
  134. o Option -multibase prevents auto-merging of sections, which are accessed
  135.   base-relative. This means the program uses more than one base register
  136.   for accessing small data.
  137.  
  138. - 0.3b (02.05.98)
  139. o Some experimental code for target elf64alpha, but nothing usable now.
  140. o There were still infinite loops, if an object comes without any section.
  141. o (ados/ehf) A dummy code section will be created, if an output file
  142.   has no section at all.
  143.  
  144. - 0.3a (18.04.98)
  145. o Updated and changed some help texts.
  146.  
  147. - 0.3  (17.04.98)
  148. o First version, which reliably links ELF32-PowerPC-BigEndian relocatable
  149.   object files and library archives. The only ELF output format is
  150.   currently a relocatable object, which means only linking with -r works.
  151. o Support for SystemV-style and BSD-style ".a"-archives.
  152. o (elf32ppc) Resolving ADDR16_HA/HI/LO references to a relocatable
  153.   symbol didn't work (2 bytes of the next instructions were overwritten).
  154. o Fixed the print routine for function names, in which an error occured.
  155.   It didn't work, if symbols had a known size. Additionally, it can
  156.   differentiate between 'no type', 'function' and 'object' now.
  157. o Option -R directs vlink to generate short relocs, if the target format
  158.   allows this. It is for example supported by ELF and AmigaDos.
  159.   Restriction: -R is currently ignored for ados/ehf and I'm not sure if
  160.   the implementation is correct for elf32ppc, because "objdump --reloc"
  161.   crashes on encountering ".rel" sections. Don't use this option for now!
  162. o Commented out some options in the help text, which are still not supported.
  163. o Implemented full support for little endian file formats, although
  164.   vlink currently doesn't know about one (maybe ELF64-Alpha-LittleEndian
  165.   will be the first? :).
  166. o (ados/ehf) Absolute local symbols for object files and absolute local
  167.   and global symbols for executable files are ignored.
  168. o (elf) Unlike ados/ehf, ELF allows multiple definitions of local symbols.
  169.  
  170. - 0.2a (20.03.98)
  171. o Option -F reads a list of input files from the specified file name.
  172.   File names are separated by blanks, tabs, newlines, etc., so a file
  173.   name which contains blanks has to be in quotes.
  174.  
  175. - 0.2  (07.03.98)
  176. o First version, which successfully linked EHF objects for WarpOS
  177.   into working executables!
  178. o Library units are no longer forced being the last object units
  179.   in an output file. They will be immediately inserted, if a
  180.   unit's symbol is referenced. This makes it possible to ensure
  181.   that the last object in the linker command line will also be the
  182.   last object unit in the resulting output file.
  183. o Option -v displays the standard library path.
  184. o Severe problems with base relative references, if the output file
  185.   is a relocatable object again:
  186.   Normal references were resolved, but they must remain relocatable.
  187.   External references were even completely corrupted, and overwrote
  188.   the following instruction.
  189. o (ados/ehf) Number of hunks determined in HUNK_HEADER was wrong,
  190.   if resident library name is missing (which is always the case).
  191. o (ados/ehf) HUNK_DREL32 will be treated as HUNK_RELOC32SHORT, if the
  192.   input file is executable.
  193. o (ados/ehf) Unnamed sections of an executable will always get
  194.   different names, to avoid that they are linked together. This would
  195.   cause some strange effects, like wrong base relative offsets, mixed
  196.   PowerPC and M68k code, etc..
  197.  
  198. - 0.1c (02.03.98)
  199. o Internal error (thousands of sections detected), because of an
  200.   uninititalized variable.
  201.  
  202. - 0.1b (28.02.98)
  203. o Base relative relocations, with -baseoff=0x8000 (default)
  204.   didn't work.
  205.  
  206. - 0.1a (28.02.98)
  207. o Usage of AllocMem() in dir.c is not recommendable, when considering
  208.   a PowerPC-port. Changed to malloc().
  209. o Some minor fixes - missing proto types, etc.
  210. o Modified help text in version.c
  211.  
  212. - 0.1  (27.02.98)
  213. o First version that seems to link AmigaOS ADOS and EHF
  214.   objects and libraries. Many common features, like linking
  215.   sections together which have relative references, are
  216.   still missing. Also, PowerPC-ELF32 support is about to come.
  217.  
  218. - 0.0  (04.08.97)
  219. o Project started on a beautiful summer-day at the North Sea
  220.   beach of Cuxhaven. :)
  221.